1. Field of the Invention
The invention relates to network routing and more particularly routing between separated fabrics.
2. Description of the Related Art
The increasing demands for network and fabric redundancy and resiliency have driven many users to adopt geographically separated locations for replication of data and processing. These locations may be as close as neighboring buildings or as far as separate countries. Frequently, these networks stretch across many states or even a country. Despite the great distances, the locations continue to act as a single network.
To provide connectivity between the locations, much of the technology and infrastructure needed can be very costly and relatively low throughput. As demands for data and processing grow larger, these inter-location links continue to be a source of the most significant bottlenecks when routing traffic between locations. The discrepancies between the relatively low throughput inter-location links and the high throughput intra-location links adds to the congestion and traffic back-pressure experienced throughout the fabric.
For many of the reliable networking or lowest cost path protocols deployed within a datacenter network, routing decisions analyze the entire network to choose the best possible path all the way through the network. The need to expose data about all parts of the network has benefits and shortcomings. When the entire network exists as one, traffic can be routed along the best possible path instead of relying on predefined exit points or hierarchical structuring of the network for passing traffic from one point in the network to another. But, it also means that all network elements must know about all available paths within the network and this starts impacting the size to which the network can grow.
Within these reliable networks, a common approach for ranking the available paths through the network is to assign a cost with each hop and then search for the lowest cost path from the ingress to egress points of the network. Within the Fibre Channel (FC) and Ethernet Fabric environments, the Fabric Shortest Path First (FSPF) module is responsible for analyzing the set of links exposed by the switches in the fabric and finding the lowest cost path through the fabric to reach each destination.
In Fibre Channel, routing of packets is done based on a Fabric Shortest Path First (FSPF) protocol. FSPF is described in the FC-SW-5 standards document. Quoting from FC-SW-5, Section 8.1.1:
FSPF is a link state path selection protocol. FSPF keeps track of the state of the links on all Switches in the Fabric and associates a cost with each link. The protocol computes paths from a Switch to all the other Switches in the Fabric by adding the cost of all the links traversed by the path, and choosing the path that minimizes the cost. The collection of link states (including cost) of all the Switches in a Fabric constitutes the Link State Database.
FSPF has four major components:
a) A Hello protocol, used to establish connectivity with a neighbor Switch, to establish the identity of the neighbor Switch, and to exchange FSPF parameters and capabilities;
b) A replicated Link State Database, with the protocols and mechanisms to keep the databases synchronized across the Fabric;
c) A path computation algorithm;
d) A routing table update.
The Link State Database synchronization in turn consists of two major components: an initial database synchronization, and an update mechanism. The initial database synchronization is used when a Switch is initialized, or when an Inter-Switch Link (ISL) comes up. The update mechanism is used in two circumstances:
a) When there is a link state change, for example an ISL going down or coming up;
b) On a periodic basis, to prevent switches from deleting topology information from the database.
The path computation algorithm shall be any algorithm that yields a minimum cost path, as defined above.
NOTE 27—One possible candidate is Dijkstra's algorithm, but this is not a requirement for interoperability.
The routing table update is not covered in this specification, since it is strictly implementation dependent. Different Switches may have different internal routing mechanisms, and still interoperate.
This works well when all of the switches are in a single, local fabric. Complications arise when long distance links are present because the fabrics are separated. It would be desirable to be able to better route when long distance links are present in the possible paths.